package com.IO流.处理流.ObjectStream__对象流;

import java.io.*;

public class ObjectOutputStream___ {
    /**
     * 将一些数据序列化保存到文件中  可以用ObjectOutputStream 将序列化的对象保存进去  序列化后的文件如下；写一个文件尝恢复；
     * w
     *    d@	!鸗D-sr /com.IO娴?澶勭悊娴?ObjectStream__瀵硅薄娴?DogH 苵v? I ageL namet Ljava/lang/String;xp   t 澶ч粍*/
    public static void main(String[] args) throws IOException {
        String FIlePath = "D:/JAVA_test/ObjectOutputStream.txt";
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FIlePath));
        oos.writeInt(100);  //存放时装箱成Integer  因为Integer实现了Serializable 所以可以序列化
        oos.writeBoolean(true);              //Boolean实现了Serializable 所以可以序列化
        oos.writeDouble(3.14159265358979);   //同理
        oos.writeUTF("Java");                //存放String的方法
        oos.writeObject(new Dog("大黄",3));  //因为Dog类实现了Serializable 所以可以序列化
        System.out.println("保存完成~~");
    }
}

class Dog implements Serializable{
    String name;
    int age;
    @Serial
    private static final long serialVersionUID = 1;  //此类中添加和修改，不用重新序列化；

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return name + " " + age;
    }
}